Conventionally, an input control device for a game apparatus, which includes a gyrosensor and an acceleration sensor (for example, Japanese Laid-Open Patent Publication No. 2000-308756) is known. Such an input control device is shaped as a rod, and game processing of playing with this input control device treated as a sword is executed. In such game processing, data on a motion of swinging a sword, for example, data on whether the swing is strong or weak, or whether the sword is moved forward or rearward, rightward or leftward, or upward or downward, is created based on an output from the acceleration sensor. Also, data on a posture at which the sword is swung (twisted), or data on a posture at which the sword is inclined forward or rearward, or rightward or leftward, is created based on an output from the gyrosensor. Based on the data thus created, how an object in the game (sword in this case) is moved is output to a game screen of the monitor.
However, the game processing using the above-described input control device has the following problems. First, for detecting each motion of the input control device, an output of only one of the gyrosensor and the acceleration sensor is used. More specifically, an output from only the acceleration sensor is used for detecting a motion of swinging the sword, whereas an output from only the gyrosensor is used for detecting a motion of swinging the sword. Therefore, nothing has been disclosed regarding an operation based on, for example, a moving velocity or the like. It is conceivable that the moving velocity is calculated from an integral of the acceleration, but this involves the problem that an error is likely to occur. In addition, when a rotation motion of moving the input control device in a circle is performed, the size of the circle of such a rotation motion (the radius or diameter of the circle) cannot be found.
Therefore, a feature of the present invention is to provide a game apparatus for allowing a game using both an acceleration sensor and a gyrosensor to be played by novel control. Another feature of the present invention is to provide a game apparatus for allowing a game using both an acceleration sensor and a gyrosensor to be played with control based on a moving velocity or a rotation radius of an input device.
The present invention has the following features. The reference numerals, additional descriptions and the like in parentheses in this section of the specification indicate an example of the correspondence with the embodiments described later for easier understanding of the present invention, and do not limit the present invention in any way.
A first aspect of the present invention is directed to a game apparatus comprising operation data obtaining means (10), estimation means (10), and game processing means (10). The operation data obtaining means obtains operation data including at least acceleration data and angular velocity data from an input device including at least an acceleration sensor and a gyrosensor. The estimation means estimates a moving velocity of the input device itself and/or a relative positional relationship between the input device and a center of a rotation motion applied on the input device itself, based on the acceleration data and the angular velocity data. The game processing means executes game processing based on the estimated moving velocity and/or relative positional relationship.
According to the first aspect, the center of the rotation motion applied on the input device and the moving velocity can be estimated, and a game apparatus having a novel operability can be provided.
In a second aspect based on the first aspect, the estimation means estimates the moving velocity of the input device itself and/or the relative positional relationship by performing an approximation on the rotation motion, the approximation ignoring an influence of a change of the center of the rotation motion.
According to the second aspect, the center of the rotation motion applied on the input device and the moving velocity can be estimated with a simpler manner of processing.
In a third aspect based on the first aspect, the estimation means includes angular acceleration calculation means (10) for calculating angular acceleration data based on a change of the angular velocity data in a predetermined time period. The estimation means calculates the relative positional relationship based on the acceleration data, the angular velocity data and the angular acceleration data, and calculates the moving velocity based on the positional relationship and the angular velocity data.
According to the third aspect, the moving velocity of the input device can be calculated more appropriately.
In a fourth aspect based on the first aspect, the game apparatus further comprises posture calculation means (10) for calculating a posture of the input device based on the acceleration data and the angular velocity data.
According to the fourth aspect, game processing reflecting the posture of the input device can be executed.
In a fifth aspect based on the fourth aspect, the acceleration represented by the acceleration data includes a gravitational acceleration. The estimation means includes gravitational acceleration estimation means (10) for estimating the gravitational acceleration based on the posture of the input device calculated by the posture calculation means; and motion component calculation means (10) for calculating a motion component, which is an acceleration component other than a gravity component, by removing the gravitational acceleration from the acceleration represented by the acceleration data.
According to the fifth aspect, the center of the rotation motion and the moving velocity of the input device can be estimated more accurately.
In a sixth aspect based on the fourth aspect, the game processing means executes the game processing based on the posture of the input device calculated by the posture calculation means and the moving velocity calculated by the estimation means.
According to the sixth aspect, game processing reflecting the posture and the moving velocity of the input device can be executed, and a game apparatus for allowing a game to be played with a novel operation can be provided.
In a seventh aspect based on the sixth aspect, the game processing means determines a posture, in a virtual game space, of an operation target object, which is a target of an operation made by a player, based on the posture of the input device, and determines a position of the operation target object based on the moving velocity.
In an eighth sixth aspect based on the seventh aspect, the game processing means executes a control based on the posture of the input device, and based on the moving velocity, further changes an amount of control to be made based on the posture.
According to the seventh and eighth aspects, a motion applied on the input device by the player can be reflected on the game processing more accurately.
In a ninth aspect based on the first aspect, the game processing means executes a first control based on the moving velocity and executes a second control based on the positional relationship.
According to the ninth aspect, the moving velocity of the input device and the relative positional relationship between the center of the rotation motion and the input device can be separately processed, and a novel game can be provided.
In a tenth aspect based on the first aspect, the estimation means estimates the relative positional relationship as a value representing a radius of the rotation motion.
In an eleventh aspect based on the first aspect, the estimation means estimates the relative positional relationship as a vector from the center of the rotation motion to a position of the input device.
According to the tenth and eleventh aspects, data representing the relative positional relationship between the center of the rotation motion and the input device can be processed more simply.
In a twelfth aspect based on the tenth aspect, the game apparatus further comprises correction means for correcting the relative positional relationship in accordance with a magnitude of the angular velocity represented by the angular velocity data.
In a thirteenth aspect based on the twelfth aspect, the correction means performs a correction such that as the angular velocity is larger, the degree of the angular velocity being reflected on the relative positional relationship is higher, whereas as the angular velocity is smaller, the degree of the angular velocity being reflected on the relative positional relationship is lower.
According to the twelfth and thirteenth aspects, a motion applied on the input device by the player can be reflected on the game processing more accurately.
In a fourteenth aspect based on the fifth aspect, the estimation means calculates the positional relationship using the following expression.
  Rs  =                    (                                                            -                                  ω                  2                                                                                                      -                                      ω                    .                                                  ⁢                z                                                                                      ω                  .                                ⁢                y                                                                                                          ω                  .                                ⁢                z                                                                    -                                  ω                  2                                                                                                      -                                      ω                    .                                                  ⁢                x                                                                                                          -                                      ω                    .                                                  ⁢                y                                                                                      ω                  .                                ⁢                x                                                                    -                                  ω                  2                                                                    )                    -        1              ⁢    A  
Rs means a value represented as the positional relationship, A means a value represented as the motion component calculated by the motion component calculation means, and ω means a value of the angular velocity which is represented as the angular velocity data and is formed of three axis components of X, Y and Z axes perpendicularly crossing one another.
{dot over (ω)}x means a differential value of an X-axis component of the angular velocity, {dot over (ω)}y means a differential value of a Y-axis component of the angular velocity, and {dot over (ω)}z means a differential value of a Z-axis component of the angular velocity.
According to the fourteenth aspect, substantially the same effect as that of the first aspect can be provided.
A fifteenth aspect of the present invention is directed to a computer readable storage medium having stored thereon a game program to be executed by a computer of a game apparatus, the game program causing the computer to act as operation data obtaining means (S1), estimation means (S5, S6), and game processing means (S7, S8). The operation data obtaining means obtains operation data including at least acceleration data and angular velocity data from an input device including at least an acceleration sensor and a gyrosensor. The estimation means estimates a moving velocity of the input device itself and/or a relative positional relationship between the input device and a center of a rotation motion applied on the input device itself, based on the acceleration data and the angular velocity data. The game processing means executes game processing based on the estimated moving velocity and/or relative positional relationship.
In a sixteenth aspect based on the fifteenth aspect, the estimation means estimates the moving velocity of the input device itself and/or the relative positional relationship by performing an approximation on the rotation motion, the approximation ignoring an influence of a change of the center of the rotation motion.
In a seventeenth aspect based on the fifteenth aspect, the estimation means includes angular acceleration calculation means (S4) for calculating angular acceleration data based on a change of the angular velocity data in a predetermined time period. The estimation means calculates the relative positional relationship based on the acceleration data, the angular velocity data and the angular acceleration data, and calculates the moving velocity based on the positional relationship and the angular velocity data.
In an eighteenth aspect based on the fifteenth aspect, the game program causes the computer to further act as posture calculation means (S2) for calculating a posture of the input device based on the acceleration data and the angular velocity data.
In a nineteenth aspect based on the eighteenth aspect, the acceleration represented by the acceleration data includes a gravitational acceleration. The estimation means includes gravitational acceleration estimation means (S3) for estimating the gravitational acceleration based on the posture of the input device calculated by the posture calculation means; and motion component calculation means (S3) for calculating a motion component, which is an acceleration component other than a gravity component, by removing the gravitational acceleration from the acceleration represented by the acceleration data.
In a twentieth aspect based on the eighteenth aspect, the game processing means executes the game processing based on the posture of the input device calculated by the posture calculation means and the moving velocity calculated by the estimation means.
In a twenty-first aspect based on the twentieth aspect, the game processing means determines a posture, in a virtual game space, of an operation target object, which is a target of an operation made by a player, based on the posture of the input device, and determines a position of the operation target object based on the moving velocity.
In a twenty-second aspect based on the twenty-first aspect, the game processing means executes a control based on the posture of the input device, and based on the moving velocity, further changes an amount of control to be made based on the posture.
In a twenty-third aspect based on the fifteenth aspect, the game processing means executes a first control based on the moving velocity and executes a second control based on the positional relationship.
In a twenty-fourth aspect based on the fifteenth aspect, the estimation means estimates the relative positional relationship as a value representing a radius of the rotation motion.
In a twenty-fifth aspect based on the fifteenth aspect, the estimation means estimates the relative positional relationship as a vector from the center of the rotation motion to a position of the input device.
In a twenty-sixth aspect based on the twenty-fourth aspect, the game program causes the computer to further act as correction means for correcting the relative positional relationship in accordance with a magnitude of the angular velocity represented by the angular velocity data.
In a twenty-seventh aspect based on the twenty-sixth aspect, the correction means performs a correction such that as the angular velocity is larger, the degree of the angular velocity being reflected on the relative positional relationship is higher, whereas as the angular velocity is smaller, the degree of the angular velocity being reflected on the relative positional relationship is lower.
In a twenty-eighth aspect based on the nineteenth aspect, the estimation means calculates the positional relationship using the following expression.
  Rs  =                    (                                                            -                                  ω                  2                                                                                                      -                                      ω                    .                                                  ⁢                z                                                                                      ω                  .                                ⁢                y                                                                                                          ω                  .                                ⁢                z                                                                    -                                  ω                  2                                                                                                      -                                      ω                    .                                                  ⁢                x                                                                                                          -                                      ω                    .                                                  ⁢                y                                                                                      ω                  .                                ⁢                x                                                                    -                                  ω                  2                                                                    )                    -        1              ⁢    A  
Rs means a value represented as the positional relationship, A means a value represented as the motion component calculated by the motion component calculation means, and ω means a value of the angular velocity which is represented as the angular velocity data and is formed of three axis components of X, Y and Z axes perpendicularly crossing one another.
{dot over (ω)}x means a differential value of an X-axis component of the angular velocity, {dot over (ω)}y means a differential value of a Y-axis component of the angular velocity, and {dot over (ω)}z means a differential value of a Z-axis component of the angular velocity.
According to a computer readable storage medium having a game program stored thereon in these aspects, substantially the same effects as those of the game apparatus of the above-described aspects can be provided.
According to the present invention, the center of the rotation motion applied on the input device and the moving velocity can be estimated. Therefore, a game apparatus and a game program for allowing a game to be played with a novel operation can be provided.
These and other objects, features, aspects and advantages of the present invention will become more apparent from the following detailed description of the present invention when taken in conjunction with the accompanying drawings.